iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
Software Development

Android 工具箱開發系列 第 6

Day 6 Shizuku 怎麼讓電腦下班

  • 分享至 

  • xImage
  •  

昨天說,我們需要一個住在手機裡、用 shell 身分做事的服務

Shizuku 就是那位同事
而且它真的有上班,不是群組裡只會回貼圖的那種

它怎麼啟動

用電腦啟動 Shizuku 時,指令大概長這樣:

adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh

那個 script 會透過 app_process 啟動 Shizuku 的服務

重點是:指令從 adb shell 執行,所以服務繼承了 shell 身分,也就是前幾天一直提的 uid 2000

啟動後就能拔線。服務還會繼續跑
但重開機後要重新啟動,因為它也沒強到能自己起死回生

我們的 App 怎麼找它

靠 Binder,Android 用來讓不同程式互相講話的機制

Shizuku 大致提供兩條路:

  • Binder 代理:請 Shizuku 代為呼叫系統服務,速度快,但會碰到一些隱藏 API
  • User Service:讓我們自己寫的程式跑在 shell 身分的行程裡

這系列主要走第二條

畢竟我們想做的很多事,本來就是跑 pmwmsettings 這些指令
沒必要為了按一個按鈕,先跟 Android 隱藏 API 打三回合

不過 App 也不能直接喊「Shizuku 幫我一下」就拿到權限。第一次使用要向 Shizuku 申請,使用者同意後才行

不然任何 App 都能借 uid 2000,手機早就變成公共廁所了

今天先搞懂原理:Shizuku 先用 shell 身分跑起來,我們的 App 再透過 Binder 找它做事

明天開始寫程式,先把專案骨架弄出來


上一篇
Day 5 無線偵錯能讓電腦下班嗎
系列文
Android 工具箱開發6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言